home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 001-025 / scopedisk1 / freeram / freeram.c < prev    next >
C/C++ Source or Header  |  1995-03-18  |  943b  |  41 lines

  1. #include    <exec/execbase.h>
  2. #include    <exec/memory.h>
  3.  
  4. extern struct ExecBase    *SysBase;
  5.  
  6. main()
  7. {
  8.     struct MemChunk    *first;
  9.     char        *type;
  10.  
  11.     /* point to the first MemHeader in the list */
  12.     register struct MemHeader *memHdr =
  13.         (struct MemHeader *)&SysBase->MemList.lh_Head->ln_Succ;
  14.  
  15.     /* Don't risk having the free list change while we're
  16.      * looking at it.
  17.      */
  18.     Disable();
  19.  
  20.     /* Walk through the memory pool, looking for ram. */
  21.  
  22.     while (memHdr->mh_Node.ln_Succ) {
  23.         if (memHdr->mh_Attributes & MEMF_CHIP)
  24.             type = "Chip";
  25.         else
  26.             type = "Fast";
  27.  
  28.         printf("\nBlock of %s RAM from %08lx to %08lx\n",
  29.             type, memHdr->mh_Lower, memHdr->mh_Upper);
  30.         printf("%s ram free list:\n", type);
  31.         for (first = memHdr->mh_First; first; first = first->mc_Next)
  32.             printf("%10ld (%08lx Hex) bytes at %08lx\n",  
  33.                 first->mc_Bytes, first->mc_Bytes, first);
  34.  
  35.     memHdr = (struct MemHeader *)memHdr->mh_Node.ln_Succ;
  36.     }
  37.  
  38.     /* interrupts back on */
  39.     Enable();
  40. }
  41.